#include <am.h>
#include <klib.h>
#include <klib-macros.h>
#define     __IOM    volatile 

typedef struct {  /*!< GPIO Structure */
    __IOM uint32_t PADDIR;
    __IOM uint32_t PADIN;
    __IOM uint32_t PADOUT;
    __IOM uint32_t INTEN;
    __IOM uint32_t INTTYPE0;
    __IOM uint32_t INTTYPE1;
    __IOM uint32_t INTSTATUS;
} GPIO_TypeDef;

#define GPIO_BASE (0x13000000)
#define GPIO      ((GPIO_TypeDef *) GPIO_BASE)

int main(const char *args) {
  // char buf[64];

  printf("set gpio\n");
  GPIO->PADDIR = 0xFFFF;
  GPIO->PADOUT = 0x5a5a;

  printf("read gpio %x\n",GPIO->PADOUT);

  printf("wait \n");

  GPIO->PADOUT = 0xa5a5;
  printf("read gpio %x\n",GPIO->PADOUT);

  // // printf("")
  // for(int i=0 ; i<100;i++){
  //   printf("mul %d\n",i * i * 112332);
  // }
  // printf("99 * 99 %d \n", i);
  

  // while(1){
  //   int ch = uart_getc();
  //   while(ch != -1){
  //     uart_putc((ch));
  //     ch = -1 ;
  //   }
  // }

  return 0;
}
